package com.xfg.domain.strategy.service.rule.tree.Impl;

import com.xfg.domain.strategy.model.valobj.RuleLogicCheckTypeV0;
import com.xfg.domain.strategy.service.rule.tree.ILogicTreeNode;
import com.xfg.domain.strategy.service.rule.tree.factory.DefaultTreeFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 兜底奖励节点
 */
@Slf4j
@Component("rule_luck_award")
public class RuleLuckAwardLogicTreeNode implements ILogicTreeNode {
    //兜底奖励节点（RuleLuckAwardLogicTreeNode）
    //行为：随机发放积分作为兜底奖励。
    //原因：当其他所有条件都不满足时，系统需要提供一个默认的奖励机制，以保证用户的参与感和满意度。
    //设计意图：通过返回 TAKE_OVER 并设置具体的奖励数据（如积分），确保即使主流程失败，用户也能获得某种形式的奖励。
    @Override
    public DefaultTreeFactory.TreeActionEntity logic(String userId, Long strategyId, Integer awardId) {
        return DefaultTreeFactory.TreeActionEntity.builder()
                .ruleLogicCheckType(RuleLogicCheckTypeV0.TAKE_OVER)
                .strategyAwardVO(DefaultTreeFactory.StrategyAwardVO.builder()
                        .awardId(101)
                        .awardRuleValue("1,100")
                        .build())
                .build();
    }
}
